public abstract class Animal {
    protected String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    // 抽象方法，子类必须实现
    public abstract void makeSound();
    
    // 普通方法
    public void sleep() {
        System.out.println(name + " is sleeping");
    }
    
    // getter方法
    public String getName() {
        return name;
    }
}